是一種容器虛擬化的工具,對於開發專案不同環境可能會有版本相容的問題,導致在不同環境上啟動的時候都會遇到不同的問題與狀況,在更換不同的環境都需要花一些時間另外配置與處理,才能讓系統順利運行,Docker的出現就是要解決這個問題,讓我們能在不同環境下都能迅速的使系統能正常運行。
解決了環境轉換的問題,節省了需要重新配置處理環境的問題,一起幫我們打包了程式碼、相關環境配置、運行環境、相關依賴與版本,都打包為image,讓這些image可以在Docker容器中運行,而Docker容器在任何操作系統上都是一致的,實現了跨平台、跨服務器皆能一致化運行。
只需要一次配置好環境,後續轉換環境就可以一鍵部署好。
(圖片引用至Docker官網 https://www.docker.com/resources/what-container/)
提高交付和部署的效率
相較於傳統虛擬機來說,相對較為輕量化,所佔據的資源較少、運行的時間也較短。
可將 GitHub / Jenkins 整合至Docker中,就能快速因為提交程式碼通過Jenkins所設定的條件後,就能自動化傳遞給Docker構建出新版本的image,並保留不同版本的image。
更方便擴展或縮小服務
如果使用實體的伺服器,當需要因應較大流量需求時,會需要較多台設備以及每台設備都需要處理好環境,但如果較大流量非長期性的,只是某些週期性才需要具備的需求,就會增加較大的成本與資源。
而藉由Docker容器化技術,再透過運用雲端存儲服務,就能因應短時間的大流量需求,並且能達到快速擴展部署與運行,也能快速縮小服務。
對於系統上的維護變得更簡單
能紀錄不同的版本,可以隨時轉換回不同的版本運行。
較不會佔據太多資源
因為Docker是虛擬化容器,相較於實體的伺服器而言,所佔據的空間較小,因此能降低服務器的CPU和儲存空間的使用。
最後總結,要來說說Docker他自己官網的標語
Develop faster. Run anywhere.
So, choose Docker quickly!
最後一句是我自己加的XD